home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Creative Computers
/
Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso
/
shareware
/
fractals
/
mandelpaug
/
mandelpaug.doc
< prev
next >
Wrap
Text File
|
1994-11-17
|
34KB
|
778 lines
MandelPAUG v2.1 25 Jan 91
An enhanced Mandelbrot and Julia set fractal generator
exclusively for the Amiga computer!
This is a fully functional implementation of the MandFXP program which was
written by Bruce Dawson and Steve Larocque of CygnusSoft Software in
Vancouver, B.C. CygnusSoft Software released MandFXP as freely
redistributable along with its source code.
This version was produced by Jerry D. Hedden for inclusion in the
Philadelphia Amiga Users Group's (PAUG) Public Domain Software Library.
Compared to previous releases, this version has the complete on-line help
function, a fully implemented "Mandelbrot and Julia set movie" mode, and
sports many improvements in the user-interface. Non-visible changes include
code cleanup, numerous bug fixes, better utilization of chip ram, and
special code for utilizing 68020 32-bit multiplication. The algorithmic
portions of the original MandFXP source are largely unchanged.
Introduction and Theory
~~~~~~~~~~~~~~~~~~~~~~~
The Mandelbrot set and the Julia set are both what is known as 'fractals'.
For each pixel, a mathematical operation is performed repeatedly on its
coordinates until either the result grows larger than a certain limit (two)
or the operation has been performed the maximum number of times selected by
the user. This is why Mandelbrot programs take so long. For each pixel
they may have to perform the same operation hundreds of times! If the
result of the operation still hasn't exceeded two when the operation has
been performed the maximum number of times, the pixel is considered to be in
the Mandelbrot set (or Julia set) and is colored black.
One important thing about fractals is that they are infinitely complex. No
matter how far you zoom in, there will always be more detail farther in. If
you seem to be running out of detail, it is because the maximum number of
iterations is set too low. Raise it, and more of the details along the
boundary of the set will appear.
For more information try the book 'The Fractal Geometry of Nature' by Benoit
Mandelbrot [Freeman Press] (he explains it better than could be done in
the limited space available here), or past issues of Scientific American.
To get a feel for why Mandelbrot images take so much time to draw, let's
examine the case where the maximum iterations is set to 32 and the drawing
area is 320x200 covering the full Mandelbrot set. Generating the image will
require over 1,000,000 multiplications, 1,000,000 additions, 700,000
subtractions and tens of millions of other operations. No wonder...
Outstanding Features of the MandelPAUG Program
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So just what does MandelPAUG have to offer?
- Produces Mandelbrot and Julia sets in both two and three
dimensions.
- Very fast!! Uses custom, optimized algorithms for
computations, and features a 'remember mode' that
reduces recalculations.
- Up to over 300 decimal places of accuracy. Varies
with extent of zoom.
- Full control over the number of iterations to be
performed. Selectable color increments.
- Full control over screen types and depth, window size,
colors, etc.
- Images can be saved as IFF files. Even partially
completed images can be saved, and then brought back in
for completion.
- Full zoom in and zoom out control. Even scrolling of
images is handled.
- Images and specs can be saved as presets for fast recall.
An 'undo' function can be used to recall the last
image/spec.
- Extensive on-line help! A very user-friendly interface.
- Mandelbrot and Julia set Movies! Straight zoom-in or
pan while zooming. Can be saved and loaded from disk.
Check it out and enjoy!!!
Before you run
~~~~~~~~~~~~~~
MandelPAUG requires the use of req.library for its file, color and text
requesters. Therefore, you need to copy the 'req.library' file to your
libs: directory.
If run from the CLI, set the stack to 8000 first.
Help
~~~~
The on-line help function can be reached from the menu or by pressing the
Help key. From there, select the menu items you need information on. When
done, exit the help function by pressing the escape key.
The on-line help function is primarily designed as a quick reference. More
details on any particular function can be found in this doc file.
Documentation
~~~~~~~~~~~~~
The remainder of this file contains detailed information on the functions
available in the MandelPAUG program. There is a great deal of information
here. Please take the time to read through it in order to get the maximum
utility and enjoyment from the program.
The information presented below pretty much follows the order of menu item
in the program.
New/Reset
~~~~~~~~~
Resets the program back to the startup conditions: full Mandelbrot set with
default settings. The user's disk-stored defaults, if found, will be used;
otherwise, hardwired defaults will be set.
The file used for the disk-stored defaults can be of any type that the
program handles (since they all store the default information). However,
the file must be named MandelPAUG.def.
Opening Files
~~~~~~~~~~~~~
Loads in location, iterations, colors, etc. information, as well as image
data (if saved). If 'Specs Only' were stored, then the program will start
calculating the picture 'from scratch'. If saved with it's Image, it will
load the image, and, if it was only a partially completed picture, will
resume calculations where it had left off.
Open defaults attempts to load default settings from the file MandelPAUG.def
located in the current directory. The program then recalculates the image
using these settings and the current location information.
Saving Files
~~~~~~~~~~~~
Saves current program information to a file on disk. The user is given the
option of storing the Specs (settings and location information), or the
Image (which includes the Specs). The Image need not be complete, and when
loaded, the program will continue calculations, if required.
The program uses IFF standards, so a saved Image will be compatible with
other programs that work with IFF pictures.
Saving Defaults stores current settings (but not location information) that
are used on startup, and when requested by the user. The Defaults file
will be called MandelPAUG.def.
IFF Files
~~~~~~~~~
The files that MandelPAUG stores are readable by paint programs, picture
viewing programs, and anything else that handles IFF files. The extra data
that MandelPAUG puts in the file will just be ignored by other programs.
However, if you modify a MandelPAUG file with some other program (a paint
program, for instance), don't try to load it back into MandelPAUG, as all
the extra data that MandelPAUG requires will have been stripped away.
Read/Write Errors
~~~~~~~~~~~~~~~~~
If something funky happens while reading or writing a file, you'll probably
get an error message. The message will probably refer to the specific IFF
chunk or program variable that couldn't be dealt with. The information may
not be of much use other than to let you know that the file is probably
unusable. It could be indicative of a bug, but most likely it'll be a
problem with the disk media.
Printing
~~~~~~~~
Obviously, these options require the use of a printer.
Specs - Prints out current location and setting information.
Image (Sync) - This prints out the image with the program being tied-up until
the printing is done.
Image (ASync) - As above, except spawns a separate task for the print job
that multitasks with MandelPAUG.
You might want to play with the colors a bit before printing, especially
turning the black of the set to white to save on ribbon usage.
Title Bar
~~~~~~~~~
The screens title bar can be toggled on and off.
Window Size
~~~~~~~~~~~
Allows the user to select the size of the drawing area. The drawing area is
always centered in the middle of the screen. A new image is generated in
the new window using the previous location information. If the new window's
shape is very different, the resulting image will be distorted. Use Restore
Aspect in the Zoom submenus to correct this, if desired.
Display Type
~~~~~~~~~~~~
You can choose betwee